#include<bits/stdc++.h>
using namespace std;
struct Pos
{
	int pre;
	int num;
	int peo;
	int cur;
}pos;
int main()
{
	int val[4][100]={0};
	int num[100]={0};
	int lef[4]={0};
	int tmp;
  int n,m;

  cin>>n>>m;
  for(int i=1;i<=3;i++)
  {
  	lef[i]=n;
  }
  for(int po=1;po<=3;po++)
  {
  for(int i=1;i<=n;i++)
  {
  	cin>>tmp;
  	val[po][tmp]++;
  }	
  }	
pos.num=1;
pos.pre=1;
pos.peo=1;
pos.cur=-1;
int jud;
	while(1)
	{
		
		if(pos.peo!=pos.pre)
		{
		jud=0;
		for(int i=pos.cur+1;i<=m;i++)
		{
			if(val[pos.peo][i]>=pos.num)
			{
				val[pos.peo][i]-=pos.num;
				lef[pos.peo]-=pos.num;
				pos.cur=i;
				pos.pre=pos.peo;
				jud=1;
				break;
				
			}
		}
		if(jud==0)
		{
			for(int i=1;i<=m;i++)
			{
				if(val[pos.peo][i]>pos.num)
				{
					val[pos.peo][i]-=pos.num+1;
					lef[pos.peo]-=pos.num+1;
					pos.cur=i;
					pos.num++;
					pos.pre=pos.peo;
					break;
				}
			}
		}
		}
		else
		{
			pos.num=1;
			for(int i=1;i<=m;i++)
			{
				if(val[pos.peo][i]>=pos.num)
				{
						val[pos.peo][i]-=pos.num;
						lef[pos.peo]-=pos.num;
						pos.pre=pos.peo;
						pos.cur=i;
						break;
				}
			}
		}
		if(lef[pos.peo]<=0)
		{
			cout<<pos.peo;
			break;
		}
		pos.peo++;
		if(pos.peo>3)
		{
			pos.peo=1;
		}
		}
		
		
		return 0;	
	}
	
	
